El títol d'aquest article és incorrecte a causa de limitacions tècniques. El títol correcte de l'article és C#. |
Aquest article o secció no cita les fonts o necessita més referències per a la seva verificabilitat. |
C# (llegit "sé xarp" per l'original anglès sharp, o bé "sé sostingut") és un llenguatge de programació de propòsit general i multiparadigma desenvolupat per Microsoft al voltant de l'any 2000 i estandarditzat, com a part de la seva plataforma .NET. El va dissenyat Anders Hejlsberg però actualment l'equip de desenvolupament el lidera Mads Torgersen.
La pronúncia del nom ve de la terminologia musical anglosaxona on C correspon a la nota do i per tant C# significa "do sostingut". El símbol # ve de sobreposar "++" sobre "++" i fer desaparèixer les separacions, per fer constar així la seva descendència de C++.
La seva sintaxi bàsica deriva de C/C++ i utilitza el model d'objectes de la plataforma .NET el qual és similar al de Java però inclou millores derivades d'altres llenguatges. C# fou dissenyat per a combinar el control a nivell baix de llenguatges com C i la velocitat de programació de llenguatges com Visual Basic.
C#, com a part de la plataforma .NET, està normalitzat per ECMA des de desembre de 2001 (ECMA-334 "Especificació del Llenguatge C#"). El 7 de novembre de 2005 acabà la beta i sortí la versió 2.0 del llenguatge que inclou millores com tipus genèrics, mètodes anònims, iteradors, tipus parcials i tipus anul·lables. La darrera versió es la 9.0, va sortir en 2020 per .Net 5.0 i es soporta en Visual Studio 2019.
Encara que C# forma part de la plataforma .NET, aquesta és una interfície de programació d'aplicacions; mentre que C# és un llenguatge de programació independent dissenyat per a generar programes sobre aquesta plataforma. Hi ha compiladors, com les noves versions de Visual Studio (amb els plugins adequats), que no generen programes per a aquesta plataforma, sinó per a una plataforma diferent com Win32, UNIX, UWP, Android, IOS…
En l'actualitat existeixen els següents compiladors per al llenguatge C#: